package com.ego.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ego.admin.po.SysMenu;

import java.util.List;
import java.util.Set;

/**
 * @program: ego
 * @description: 菜单管理
 * @author: KamTang
 * @create: 2022-11-12 15:34
 **/
public interface SysMenuService extends IService<SysMenu> {

    /**
     * 根据父菜单，查询子菜单
     * @param parentId 父菜单ID
     * @param menuIdList  用户菜单ID
     * @return 菜单列表
     */
    List<SysMenu> gets(Long parentId, List<Long> menuIdList);

    /**
     * 根据父菜单，查询子菜单
     * @param parentId 父菜单ID
     * @return 菜单列表
     */
    List<SysMenu> gets(Long parentId);

    /**
     * 获取不包含按钮的菜单列表
     * @return 菜单列表
     */
    List<SysMenu> queryNotButtonList();

    /**
     * 获取用户菜单列表
     * @param userId 用户ID
     * @return 菜单列表
     */
    List<SysMenu> getNavMenu(Long userId);

    /**
     * 删除
     * @param menuId 菜单ID
     */
    void delete(Long menuId);

    /**
     * 获取用户权限列表
     * @param userId id
     * @return 无重复权限列表
     */
    Set<String> getUserPermissions(long userId);
}
